Ajustes pós-pull: correções de bugs e configuração de ambiente#115
Open
Rossi-Luciano wants to merge 4 commits into
Open
Ajustes pós-pull: correções de bugs e configuração de ambiente#115Rossi-Luciano wants to merge 4 commits into
Rossi-Luciano wants to merge 4 commits into
Conversation
As migrations 0003_remove_articledocxmarkup_dateiso_and_more (main) e 0004_articledocxmarkup_xref_status (add-xref-linking) foram criadas a partir do mesmo ancestral 0002, gerando dois nós folha conflitantes no grafo de migrations. A migration de merge resolve o conflito sem alterar o banco de dados. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
O campo dateiso foi excluído de ArticleDocxMarkup pela migration 0003_remove_articledocxmarkup_dateiso_and_more, mas get_xml() ainda o referenciava para gerar pub-date, causando AttributeError em toda task de geração de XML. A data de publicação da issue agora vem de issue.year e issue.month, já tratados no bloco anterior. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Quando o parágrafo de introdução era o primeiro elemento a registrar uma seção no documento, a lista sections ainda estava vazia no momento em que extractContent tentava acessar sections[-1] para criar o first_block. Adicionado guard para retornar lista vazia quando sections não tem elementos. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CONN_MAX_AGE = 0 força o Django a fechar conexões após cada request, evitando acúmulo que esgotava o limite do banco. max_connections=200 no serviço postgres do docker-compose local acomoda os 16 workers prefork do Celery mais as conexões do Django sem atingir o limite padrão de 100. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contexto
Após o merge das branches
add-xref-linkinge mudanças namain(que removeu campos do modeloArticleDocxMarkupe criou o modelIssue), surgiram três problemas que impediam o processamento de artigos.Mudanças
1. Migration de merge (
markup_doc/migrations/0005_merge_20260602_1323.py)As migrations
0003_remove_articledocxmarkup_dateiso_and_more(main) e0004_articledocxmarkup_xref_status(add-xref-linking) foram criadas a partir do mesmo ancestral, gerando conflito no grafo de migrations. A migration de merge resolve o conflito sem alterar o banco de dados.2.
markup_doc/xml.py— remoção de referência a campo inexistenteO campo
dateisofoi removido deArticleDocxMarkuppela migration0003, masget_xml()ainda o referenciava para gerar o elemento<pub-date>, causandoAttributeErrorem toda task de geração de XML. O bloco foi removido — a data de publicação da issue já é tratada viaissue.yeareissue.monthno bloco imediatamente anterior.3.
markuplib/function_docx.py— correção deIndexErrorQuando o parágrafo de introdução era encontrado antes de qualquer seção registrada,
sectionsestava vazia esections[-1]lançavaIndexError, abortando o processamento do DOCX. Corrigido com guardif sections else [].4.
config/settings/base.pyelocal.yml— ajuste de conexões PostgreSQLCom Celery rodando 16 workers prefork, o limite padrão de 100 conexões do PostgreSQL era esgotado, causando
FATAL: sorry, too many clients already. Duas correções complementares:CONN_MAX_AGE = 0no Django para fechar conexões ao fim de cada requestmax_connections=200no serviço postgres dolocal.ymlTestes
Os bugs foram reproduzidos e confirmados resolvidos com o reprocessamento de três artigos reais obtidos do Google Drive (pasta de artigos SciELO em produção), selecionados para cobrir as principais variações estruturais do pipeline:
bn-2025-1828.docx— Biota Neotropica (artigo bilíngue PT/EN)<trans-title>em português<abstract>em inglês com<trans-abstract>em portuguêsmixed-citation)10.1590/1676-0611-BN-2025-1828Cobre o fluxo de artigos bilíngues, forçando a detecção de idioma e a geração de blocos
<trans-title>e<trans-abstract>.rbent-2025-0077.docx— Revista Brasileira de Entomologia (artigo em inglês)mixed-citation)10.1590/1806-9665-RBENT-2025-0077Complementa o anterior cobrindo o fluxo monolíngue, validando que o pipeline não gera elementos de tradução vazios quando não há conteúdo bilíngue, e exercitando o parser de
<kwd-group>num formato de lista separada.mr-2025-0709.docx— Materials Research (artigo com figuras)10.1590/1980-5373-MR-2025-0709Único fixture com imagens embutidas, cobrindo o caminho de código responsável por detectar
w:drawingno XML do DOCX, persistir cada imagem comoImageModelno Wagtail e gerar os 10 elementos<fig>(f1–f10) no XML final.Os três artigos, juntos, cobrem as principais variações estruturais do pipeline:
trans-title/trans-abstract🤖 Generated with Claude Code